/*
	通过id获取对象 
	@parameter id DOM节点ID
*/
function $id(id){return document.getElementById(id);}

/* 
	通过class获取对象 
	@parameter obj 需要查找元素的父级
	@parameter name 需要查找的class名称
	@parameter type DOM元素类型
*/
function getClassElm(name, obj, type){
	var elm = [],/* 存储class元素 */
		reg = new RegExp("(^|\\s)"+ name +"(\\s|$)"),/* 通过name获取class正则 */
		e = (obj || document).getElementsByTagName(type || "*");/* 获取需要寻找的class所有元素 */
	for(var i = 0; i < e.length; i++){
		if(reg.test(getClassName(e[i])))
			elm.push(e[i]);
	}
	return elm;/* 返回找到的元素 */
}

/*
	通过TAGNAME获取对象
	@parameter obj 需要查找元素的父级
	@parameter name 需要查找的class名称
*/
function getTagNameElm(tagName, obj){
	if(obj){
		return obj.getElementsByTagName(tagName);
	}else{
		return document.getElementsByTagName(tagName);
	}
}

/*
	获取class名称
	@parameter obj 需要获取class名称元素
*/
function getClassName(obj){
	return obj.className;
}

/*
	获取class名称
	@parameter obj 需要设置样式的对象
	@parameter option 需要设置的样式
*/
function setStyle(obj, option){
	with(obj){
		for(var x in option){
			style[x] = option[x];
		}
	}
}

/*
	获取当前元素索引
	@parameter mainElm 主元素
	@parameter currentElm 需要获取索引的元素
*/
function getIndex(mianElm, currentElm){
	var index = "",
		len = mianElm.length;
	for(var i = 0; i < len; i++){
		if(mianElm[i] === currentElm){
			index = i;
			break;
		}
	}
	return index;
}

/*
	设置class
	@parameter obj 需要设置class对象
	@parameter name 需要设置的class名字
*/
function setClassName(obj, name){
	var classNameStr = getClassName(obj);
	classNameStr ? obj.className = classNameStr+ " " +name : obj.className = name;
}

/*
	删除class
	@parameter obj 需要删除class对象
	@parameter name 需要设置的class名字
*/
function delClassName(obj, name){
	var classNameStr = getClassName(obj),
		reg = new RegExp("\\s*"+ name +"\\s*");/* class名称正则 */
	if(classNameStr){
		classNameStr = classNameStr.replace(reg, "");
		classNameStr = classNameStr.replace(/\s*(.*?)\s*/, "$1")
	}else{
		return false;
	}
	obj.className = classNameStr;
}

/*
	获取内容
*/
function getHtml(obj){
	return obj.innerHTML;
}

/*
	获取文本
*/
function getTxt(obj){
	var txt = "";
	obj = e.childNodes || obj;
	for(var i = 0; i < obj.length; i++){
		txt += e[i].nodeType != 1 ? e[i].nodeValue : getTxt(e[i].childNodes);
	}
	return txt;
}

/*
	阻止浏览器默认操作
*/
function stopDefault(e){
	if(e && e.preventDefault){
		e.preventDefault();
	}else{
		window.event.returnValue = false;
	}
	return false;
}

/*
	添加事件
	@parameter obj 添加事件对象
	@parameter type 添加事件类型
	@parameter fn 事件函数
*/
function addEven(obj, type, fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
    	obj[type+fn] = function(){obj['e'+type+fn](window.event);};
    	obj.attachEvent('on'+type, obj[type+fn]);
	}else{
		obj.addEventListener(type, fn, false);
	}
}

/*
	多个对象添加事件
*/
function addEvenList(obj, type, fn){
	var len = obj.length;
	for( var i=0; i<len; i++ ){
		addEven( obj[i], type, fn );
	}
}

/*
	删除事件
	@parameter obj 添加事件对象
	@parameter type 添加事件类型
	@parameter fn 事件函数
*/
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

/*
	获取鼠标坐标
	@parameter ev 元素事件
*/
function getMousePoint(ev){
	var top = document.documentElement.scrollTop || document.body.scrollTop;
	return { y : ev.clientY + top || ev.pageY, x : ev.clientX + document.documentElement.scrollLeft};
}

/*
	对象克隆
*/
function clone(obj){
	if(!obj || typeof obj != "object"){
		return obj;
	}
	var newObj = {};
	for(var i in obj){
		if(typeof obj == "object"){
			newObj[i] = clone(obj[i]);
		}else{
			newObj[i] = obj[i];
		}
	}
	return newObj;
}

/* 禁止选中文本 */
//window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); 








